package com.bdqn.bookshop.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bdqn.bookshop.entity.Books;
import com.bdqn.bookshop.utils.DataGridViewResult;
import com.bdqn.bookshop.utils.Result;
import com.bdqn.bookshop.vo.BooksVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.awt.print.Book;
import java.util.List;

public interface BooksService extends IService<Books> {
    /**
     * 分页查询书籍
     * @param booksVo
     * @return
     */
    DataGridViewResult booksList(BooksVo booksVo);

    /**
     * 查看详情
     * @param id
     * @return
     */
    Result selectById(Integer id);

    /**
     * 发布图书
     * @param file
     * @param books
     * @param request
     * @return
     */
    Result editBooks(MultipartFile file, Books books, HttpServletRequest request);

    /**
     * 个人中心查询购买或发布图书
     * @param booksVo
     * @return
     */
    Page<Books> booksList(BooksVo booksVo, HttpServletRequest request,String representative);

    /**
     * 修改图书状态
     * @param books
     * @return
     */
    Result updateBookState(Books books);

    /**
     * 个人中心查询购买或发布图书总数量
     * @return
     */
    Result booksListCount(HttpServletRequest request,String representative);

    /**
     * 获取5条同类推荐
     * @param classifyId
     * @return
     */
    List<Books> alikeBook(String classifyId);

    /**
     * 根据条件查询不同图书数量
     * @param books
     * @return
     */
    Result booksListCount(Books books);

    /**
     * 根据条件查询不用图书集合
     * @param booksVo
     * @return
     */
    List<Books> bookList(BooksVo booksVo);

    /**
     * 首页查询最新14条图书数据
     * @return
     */
    List<Books> newBooks();

    /**
     * 首页查询分类图书
     * @param id
     * @return
     */
    List<Books> getBooksByClassifyID(Integer id);
}
